www.mxdraw.com
内容索引主面
前一个向上下一个
IMxDrawBlockTableRecord::InsertBlock 方法

插入块引用

IDL
[helpstring("method InsertBlock")]
HRESULT InsertBlock([in] DOUBLE dInsertPointX, [in] DOUBLE dInsertPointY, [in] BSTR psxBlkName, [in, defaultvalue(1.0)] DOUBLE dScale, [in, defaultvalue(0.0)] DOUBLE dAng, [out,retval] IMxDrawBlockReference** ppNewObj);
参数 
说明 
[in] BSTR psxBlkName 
图块名 
[in, defaultvalue(1.0)] DOUBLE dScale 
图块的缩放比例 
[in, defaultvalue(0.0)] DOUBLE dAng 
图块的旋转角度 
insertPoint 
图块的插入点 

返回新增加的对象

例如: C#代码。

            private void button1_Click(object sender, EventArgs e)
            {

                MxDrawDatabase blkDatabase = new MxDrawDatabase();

                if(!blkDatabase.ReadDwgFile("G:\d.dwg","") )
                    return;

                MxDrawService ser = new MxDrawService();
                if (!ser.Open("G:\a.dwg"))
                    return;

                MxDrawDatabase dataBase = ser.GetDatabase();

     
                Int64 lId = dataBase.Insert(blkDatabase,"mysign");

                if (lId == 0)
                {
                    ser.Close();
                    return;
                }

                MxDrawBlockTableRecord blkRec = dataBase.CurrentSpace();

                // 得到a.dwg所有图块位置。

                MxDrawSelectionSet ss = new MxDrawSelectionSet();
                MxDrawResbuf filter = new MxDrawResbuf();

                // 过滤图块
                filter.AddStringEx("INSERT",5020);

                // 过滤块名
                filter.AddStringEx("图框块",2);

                ss.AllSelect(filter);

                for(Int32 i = 0; i < ss.Count;i++)
                {
                    MxDrawEntity ent = ss.Item(i);
                    if (ent is MxDrawBlockReference)
                    {
                        MxDrawBlockReference blkRef = (MxDrawBlockReference)ent;
                        // 得到图块位置。
                        MxDrawPoint pos = blkRef.Position;

                        pos.x -= 295;

                        // 插入b文件。
                        blkRec.InsertBlock(pos.x,pos.y,"mysign");

                    }
                }

                // 另一个新文件。
                ser.SaveDwgFile("G:\a1.dwg");

    
                ser.Close();
            }
Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!